package esercitazione4.BTree;

import java.util.Map.Entry;

/**
 * 
 * Classe che rappresenta l'elemento contenuto all'interno dell'albero
 * una Entry (Chiave, Valore) con la Chiave che deve estendere Comparable
 *
 * @param <E>
 * @param <F>
 */
public class Element<E extends Comparable<E>,F> implements Entry<E,F>{
	
    private E key;
    private F value;
    private BNodeInterface<E,F> next; //rappresenta il link al nodo figlio con chiave successiva
    
    /** 
     * Costruttore della classe
     * @param key Chiave della Entry
     * @param value Valore della Entry
     * @param next  Link al nodo figlio con chiave successiva
     */
    public Element(E key, F value, BNodeInterface<E, F> next) {
        this.key   = key;
        this.value = value;
        this.next  = next;
    }

    /**
     * Metodo che ritorna il link al nodo successivo
     */
    public BNodeInterface<E,F> getNext(){
    	return next;
    }
    
    /**
     * Setta il link al nodo successivo
     * @param next  Nodo da inserire
     */
    public void setNext(BNodeInterface<E,F> next){
    	this.next = next;
    }
    
    /**
     * Ritorna la chiave
     */
	@Override
	public E getKey() {
		return key;
	}

	/**
	 * Ritorna il valore
	 */
	@Override
	public F getValue() {
		return value;
	}

	/**
	 * Setta il valore
	 */
	@Override
	public F setValue(F arg0) {
		value = arg0;
		return value;
	}
}
